#include <stdio.h>
#include <assert.h>

using namespace std;

const int MAXN = 50;

long long A[MAXN][MAXN];
long long N;

void Solve() {
  int k = 0;

  for (int i = 0; i < MAXN; ++i) {
    for (int j = 0; j <= i; ++j) {
      if (!i || !j || j == i) {
        A[i][j] = 1;
      } else {
        A[i][j] = A[i - 1][j] + A[i - 1][j - 1];
      }
      ++k;
      if (A[i][j] == N) {
        printf("%d\n", k);
        return;
      }
    }
  }
  // assert(false);
  printf("-1\n");
  // printf("k %d\n", k);
}

int main() {
  // freopen("in.txt", "r", stdin);
  // N=-1;
  scanf("%lld", &N);
  Solve();
  // for (int i=0;i<MAXN;++i) {
  //   printf("%lld ", A[MAXN-1][i]);
  // }
  return 0;
}